﻿/***********************************************************************************************
 * 
 * ProjectName: WMSSoft.Lib.WinKStart
 * 
 * Description: Class to Save a Configuration - Object for a ContextmenuItem from a Function
 * 
 * Created:     06.09.2014
 * 
 * Author:      matthias wagler - matthias@WMSSoft.de
 * 
 * Copyright:   Copyright 2012 by WMSSoft.net
 * 
 * License:     GPLv3
 * 
 * History:     06.09.2014 - matthias wagler matthias@WMSSoft.de   -   Created
 * 
 **********************************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using WMSSoft.Lib.WinKStart.Abstract;

namespace WMSSoft.Lib.WinKStart.Model.MenuConfig
{
    public class cWinKStartContextMenuItem : CModelBase, IDisposable
    {
        string _Caption = "";
        string _Name = "";
        string _Comment = "";
        int m_MenuID = 0;
        List<string> _UsedInRegions = new List<string>();

        public cWinKStartContextMenuItem()
        {
            //Nothing TODO
        }

        public cWinKStartContextMenuItem(string Caption, string Name)
        {
            _Name = Name;
            _Caption = Caption;
        }

        public cWinKStartContextMenuItem(string Caption, string Name, string Comment)
        {
            _Name = Name;
            _Caption = Caption;
            _Comment = Comment;
        }

        /// <summary>
        /// use to remove object from model
        /// </summary>
        public virtual void Dispose() { }

        public string Caption
        {
            get { return _Caption; }
            set 
            { 
                _Caption = value;
                OnPropertyChanged();
            }
        }

        public string Name
        {
            get { return _Name; }
            set 
            { 
                _Name = value;
                OnPropertyChanged();
            }
        }

        public int MenuID
        {
            get { return m_MenuID; }
            set 
            { 
                m_MenuID = value;
                OnPropertyChanged();
            }
        }

        public string Comment
        {
            get { return _Comment; }
            set
            {
                _Comment = value;
                OnPropertyChanged();
            }
        }

        public List<string> UsedIn
        {
            get { return _UsedInRegions; }
            set 
            { 
                _UsedInRegions = value;
                OnPropertyChanged();
            }
        }
    }
}
